package cn.iocoder.mall.user.biz.service;

import cn.iocoder.mall.shop.api.pojo.ShopDTO;
import cn.iocoder.mall.user.api.entities.SellerVo;
import cn.iocoder.mall.user.biz.dataobject.AppMessage;
import cn.iocoder.mall.user.biz.dataobject.Seller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/***
 *@author yinxucun
 *@date 2019-11-20 17:40 
 */
public interface ISellerService extends  IService<Seller> {
    /**
     * 商户店员查询通过手机号查询
     * @param mobile
     * @return
     */
    Seller getOneByMobile(String mobile);
    /**
     * 商户/店员通过用户名查询
     * @param username
     * @return
     */
    Seller getOneByUserName(String username);

    /**
     * 查询该用户是否已添加过
     * @param mobile

     * @return
     */
    Seller getOneUser(String mobile);
    /**
     * 删除用户----二次添加
     * @param id
     */
    void recoverOneUser(String id);
    /**
     * 商户删除一个店员
     * @param id
     */
    void deleteOneById(String id);

    /**
     * 商户批量删除店员
     * @param asList
     */
    void deleteListById(List<String> asList);

    /**
     * 新增一个店主与店员的关系
     * @param id
     * @param clerkId
     * @return
     */
    boolean insertOneClerkRelationShip(String id, String clerkId);

    /**
     * 商户删除与店员的关系
     * @param sellerId
     * @param clerkId
     */
    void deleteOneSellerClerk(String sellerId, String clerkId);

    /**
     * 商户批量删除与店员的关系
     * @param sellerId
     * @param clerkIds
     */
    void deleteListSellerClerk(String sellerId, List<String> clerkIds);

    /**
     * 获取该商户下的店员列表
     * @param userId
     * @return
     */
    List<SellerVo> getListOfClerk(String userId);

    /**
     * 获取该商户下的店铺列表
     * @param userId
     * @return
     */
    List<ShopDTO> getListOfStores(String userId);

    /**
     * 通过id删除一个商户(逻辑删除，更新is_delete为1)
     * @param id
     */
    void deleteOneSeller(String id);

    /**
     * 通过id批量删除商户
     * @param asList
     */
    void deleteListSeller(List<String> asList);

    void addSellerShopRelationShip(String id, String id1);
    /**
     * 查询店员所属商铺列表
     * @param sellerId
     * @return
     */
    List<ShopDTO> queryClerkBelongShops(String sellerId);

    String getMobileById(String receiver);

}
